package com.ssi.report.model;

/** 
 * 
 * 	Developed By 	: Kroekpong Sakulchai
 *  Date 			: 09-MAY-2014
 *  Version 		: Alpha
 *  Team			: Software Solution And Integration
 *   
 * **/

import java.text.MessageFormat;

public class ReportModel_BK {

	/* -- Header --- */
	private String to; // Company Name
	private String attention;
	private String facsimileNumber; // FAX
	private String date; // Deal Date
	private String reference; // Kplus No.
	private String ktpNo; // KTP No.

	/* -- Detail--- */
	private String titleName;
	private String instument; // INSTUMENT
	private String instumentDesc; // INSTU_DESC
	private String takerFullName; // Company Name **

	/* -- General Terms --- */
	private String tradeDate;
	private String effectiveDate;
	private String terminationDate;
	private String commodity;
	private String totalNotionalQty;
	private String notionalQtyPerCalPeriod;
	private String calculationPeriod;
	private String paymentDate;
	private String businessDay;

	/* -- Fixed Amount Details --- */
	private String fixedPricePayer;
	private String fixedPrice;

	/* -- Floating Amount Details --- */
	private String floatingPricePayer;
	private String floatingPrice;
	private String commodityRefPrice;
	private String specifiedPrice;
	private String pricingDate; // optional
	private String settlementCurrency;
	private String settlementAmt;
	private String referenctRateLabel;
	private String referenctRate;

	/* -- Account Details --- */
	private String paymentParty_A;
	private String paymentParty_B;
	private String addressParty_A;
	private String addressParty_B;
	
	/* -- Flag --- */
	private String flagIsDA;

	public String getTo() {
		return to;
	}

	public void setTo(String to) {
		this.to = to;
	}

	public String getAttention() {
		return attention;
	}

	public void setAttention(String attention) {
		this.attention = attention;
	}

	public String getFacsimileNumber() {
		return facsimileNumber;
	}

	public void setFacsimileNumber(String facsimileNumber) {
		this.facsimileNumber = facsimileNumber;
	}

	public String getDate() {
		return date;
	}

	public void setDate(String date) {
		this.date = date;
	}

	public String getReference() {
		return reference;
	}

	public void setReference(String reference) {
		this.reference = reference;
	}

	public String getKtpNo() {
		return ktpNo;
	}

	public void setKtpNo(String ktpNo) {
		this.ktpNo = ktpNo;
	}

	public String getTitleName() {
		return titleName;
	}

	public void setTitleName(String titleName) {
		this.titleName = titleName;
	}

	public String getInstument() {
		return instument;
	}

	public void setInstument(String instument) {
		this.instument = instument;
	}

	public String getInstumentDesc() {
		return instumentDesc;
	}

	public void setInstumentDesc(String instumentDesc) {
		this.instumentDesc = instumentDesc;
	}

	public String getTakerFullName() {
		return takerFullName;
	}

	public void setTakerFullName(String takerFullName) {
		this.takerFullName = takerFullName;
	}

	public String getTradeDate() {
		return tradeDate;
	}

	public void setTradeDate(String tradeDate) {
		this.tradeDate = tradeDate;
	}

	public String getEffectiveDate() {
		return effectiveDate;
	}

	public void setEffectiveDate(String effectiveDate) {
		this.effectiveDate = effectiveDate;
	}

	public String getTerminationDate() {
		return terminationDate;
	}

	public void setTerminationDate(String terminationDate) {
		this.terminationDate = terminationDate;
	}

	public String getCommodity() {
		return commodity;
	}

	public void setCommodity(String commodity) {
		this.commodity = commodity;
	}

	public String getTotalNotionalQty() {
		return totalNotionalQty;
	}

	public void setTotalNotionalQty(String totalNotionalQty) {
		this.totalNotionalQty = totalNotionalQty;
	}

	public String getNotionalQtyPerCalPeriod() {
		return notionalQtyPerCalPeriod;
	}

	public void setNotionalQtyPerCalPeriod(String notionalQtyPerCalPeriod) {
		this.notionalQtyPerCalPeriod = notionalQtyPerCalPeriod;
	}

	public String getCalculationPeriod() {
		return calculationPeriod;
	}

	public void setCalculationPeriod(String calculationPeriod) {
		this.calculationPeriod = calculationPeriod;
	}

	public String getPaymentDate() {
		return paymentDate;
	}

	public void setPaymentDate(String paymentDate) {
		this.paymentDate = paymentDate;
	}

	public String getBusinessDay() {
		return businessDay;
	}

	public void setBusinessDay(String businessDay) {
		this.businessDay = businessDay;
	}

	public String getFixedPricePayer() {
		return fixedPricePayer;
	}

	public void setFixedPricePayer(String fixedPricePayer) {
		this.fixedPricePayer = fixedPricePayer;
	}

	public String getFixedPrice() {
		return fixedPrice;
	}

	public void setFixedPrice(String fixedPrice) {
		this.fixedPrice = fixedPrice;
	}

	public String getFloatingPricePayer() {
		return floatingPricePayer;
	}

	public void setFloatingPricePayer(String floatingPricePayer) {
		this.floatingPricePayer = floatingPricePayer;
	}

	public String getFloatingPrice() {
		return floatingPrice;
	}

	public void setFloatingPrice(String floatingPrice) {
		this.floatingPrice = floatingPrice;
	}

	public String getCommodityRefPrice() {
		return commodityRefPrice;
	}

	public void setCommodityRefPrice(String commodityRefPrice) {
		this.commodityRefPrice = commodityRefPrice;
	}

	public String getSpecifiedPrice() {
		return specifiedPrice;
	}

	public void setSpecifiedPrice(String specifiedPrice) {
		this.specifiedPrice = specifiedPrice;
	}

	public String getPricingDate() {
		return pricingDate;
	}

	public void setPricingDate(String pricingDate) {
		this.pricingDate = pricingDate;
	}

	public String getSettlementCurrency() {
		return settlementCurrency;
	}

	public void setSettlementCurrency(String settlementCurrency) {
		this.settlementCurrency = settlementCurrency;
	}

	public String getSettlementAmt() {
		return settlementAmt;
	}

	public void setSettlementAmt(String settlementAmt) {
		this.settlementAmt = settlementAmt;
	}

	public String getReferenctRateLabel() {
		return referenctRateLabel;
	}

	public void setReferenctRateLabel(String referenctRateLabel) {
		this.referenctRateLabel = referenctRateLabel;
	}

	public String getReferenctRate() {
		return referenctRate;
	}

	public void setReferenctRate(String referenctRate) {
		this.referenctRate = referenctRate;
	}

	public String getPaymentParty_A() {
		return paymentParty_A;
	}

	public void setPaymentParty_A(String paymentParty_A) {
		this.paymentParty_A = paymentParty_A;
	}

	public String getPaymentParty_B() {
		return paymentParty_B;
	}

	public void setPaymentParty_B(String paymentParty_B) {
		this.paymentParty_B = paymentParty_B;
	}

	public String getAddressParty_A() {
		return addressParty_A;
	}

	public void setAddressParty_A(String addressParty_A) {
		this.addressParty_A = addressParty_A;
	}

	public String getAddressParty_B() {
		return addressParty_B;
	}

	public void setAddressParty_B(String addressParty_B) {
		this.addressParty_B = addressParty_B;
	}

	public String getFlagIsDA() {
		return flagIsDA;
	}

	public void setFlagIsDA(String flagIsDA) {
		this.flagIsDA = flagIsDA;
	}

	
	public ReportModel_BK(){
		this.getDemoReportModel();
	}
	
	public ReportModel_BK getDemoReportModel(){
		this.takerFullName = "[Software Solution And Integration Company Limited.]";
		this.to = "[Software Solution And Integration Company Limited.]";
		this.attention = "[K. Kroekpong Sakulchai]";
		this.facsimileNumber = "[02-999-9999]";
		this.date = "[9 May 2014]";
		this.reference = "[999999]";
		this.instument = "[OIL-BRENT-ICE]";
		this.instumentDesc = "[OIL-BRENT-ICE]";
		this.titleName = this.instumentDesc;
		this.tradeDate = "[9 May 2014]";
		this.effectiveDate = "[9 May 2014]";
		this.terminationDate = "[9 May 2014]";
		this.commodity = "[OIL-BRENT-ICE]";
		this.totalNotionalQty = "[50,000 barrels]";
		this.notionalQtyPerCalPeriod = "[50,000 barrels]";
		this.calculationPeriod = "[From and including the Effective Date to and including the Termination Date.]";
		this.paymentDate = "[5 business days]";
		this.businessDay = "[New York & Bangkok]";
		this.fixedPricePayer = "[Party A]";
		this.fixedPrice = "[USD 107.00 per barrel]";
		this.floatingPricePayer = "Party B]";
		this.floatingPrice = "OIL-BRENT-ICE]";
		this.commodityRefPrice = "\""+this.commodity +"\", which means that the price for a Pricing Date will be that day’s Specified Price per barrel " +
				"of Brent blend crude oil on the ICE of the Futures Contract for the Delivery Date, " +
				"stated in U.S. Dollars as made public by the ICE on that Pricing Date.]";
		this.specifiedPrice = "The settlement price]";
		this.pricingDate = "[]"; // Obtional
		this.settlementCurrency = "[THB]";
		this.settlementAmt = "[multiplied by the quantity and multiplied by USDTHB Reference Rate.]";
		this.referenctRateLabel = "[USDTHB Reference Rate:]";
		this.referenctRate = "[The exchange rate quoted as the amount of Thai Baht \"THB\") per 1 unit of U.S. Dollar (\"USD\") " +
				"on the day that is 2 Bangkok Business Days prior to the Payment Date or other date as agreed upon by both counterparties]";
		this.paymentParty_A = "[Krung Thai Bank’s Account with The Bank of Thailand, Bangkhunprom Bangkok Account no. 001-003781-0]";
		this.paymentParty_B = this.takerFullName +"[’s Account with Krung Thai Bank, Tao Poon Branch Account no. 020-6-02609-9]";
		this.addressParty_A = "[]";//Obtional
		this.addressParty_B = MessageFormat.format("{0}\n{1}\n{2}\n{3}", new Object[] { 
				this.attention,
				"[Telephone:	0-2273-6425]",
				"[Facsimile:	0-2271-3363]",
				"[24/F Tipco Tower, 118/1 Rama Road, Phayathai, Bangkok 10400]"
			});
		return this;
	}

	@Override
	public String toString() {
		return "ReportModel [to=" + to + ", attention=" + attention
				+ ", facsimileNumber=" + facsimileNumber + ", date=" + date
				+ ", reference=" + reference + ", ktpNo=" + ktpNo
				+ ", titleName=" + titleName + ", instument=" + instument
				+ ", instumentDesc=" + instumentDesc + ", takerFullName="
				+ takerFullName + ", tradeDate=" + tradeDate
				+ ", effectiveDate=" + effectiveDate + ", terminationDate="
				+ terminationDate + ", commodity=" + commodity
				+ ", totalNotionalQty=" + totalNotionalQty
				+ ", notionalQtyPerCalPeriod=" + notionalQtyPerCalPeriod
				+ ", calculationPeriod=" + calculationPeriod + ", paymentDate="
				+ paymentDate + ", businessDay=" + businessDay
				+ ", fixedPricePayer=" + fixedPricePayer + ", fixedPrice="
				+ fixedPrice + ", floatingPricePayer=" + floatingPricePayer
				+ ", floatingPrice=" + floatingPrice + ", commodityRefPrice="
				+ commodityRefPrice + ", specifiedPrice=" + specifiedPrice
				+ ", pricingDate=" + pricingDate + ", settlementCurrency="
				+ settlementCurrency + ", settlementAmt=" + settlementAmt
				+ ", referenctRateLabel=" + referenctRateLabel
				+ ", referenctRate=" + referenctRate + ", paymentParty_A="
				+ paymentParty_A + ", paymentParty_B=" + paymentParty_B
				+ ", addressParty_A=" + addressParty_A + ", addressParty_B="
				+ addressParty_B + ", flagIsDA=" + flagIsDA + "]";
	}


}
